職涯裡用到Python機會少之又少。這需求是解析由Pepper的Choreograph工具打包出來的pkg檔,是壓縮檔卻無法使用Python的tarfile模組,必須使用zipfile模組。但在Mac OS下的tar指令卻可以解壓縮。
import zipfile
import re
zf = zipfile.ZipFile("/Users/jemmy/Downloads/my-0.0.1.pkg",'r',zipfile.ZIP_DEFLATED)
manifest = zf.read("manifest.xml")
zf.close()
pattern = re.compile(r'(uuid|version)="(.+?)"', re.MULTILINE)
match = pattern.findall(manifest)
if match:
print match
print match[0][1]
print match[1][1]
else:
print "No Match"
而需要分析manifest.xml的uuid及version,可以由re模組的findall取得,得到結果如下:
[('version', '0.0.1'), ('uuid', 'howoldareyou-ed45e4')]
0.0.1
howoldareyou-ed45e4